# HTML（HyperText Markup Language，超文本标记语言） 是一种用于创建网页的标准标记语言。它不是一种编程语言，而是一种标记语言 (markup language)，用于描述网页的结构和内容。HTML 通过一系列标签（tags）来定义网页中的元素，如标题、段落、链接、图片等。
# HTML：
# 使用尖括号和标签来表示不同的元素。
# 元素是由开始标签、内容和结束标签组成的完整结构
# 标签由开始标签和结束标签组成，中间包含内容。
# 元素是构成HTML页面的基本对象，HTML页面实际上就是由许多不同的HTML元素组成的文本文件。
# 标签嵌套的方式用于表示页面层次结构。
# 父子关系(嵌套关系)
# 兄弟关系(并列关系)
# 学习的标签
# <meta charset="UTF-8"> 字符编码(常用元数据类型如字符编码，视口控制，搜索引擎控制等)
# <title></title> 文档标题
# <h1></h1> 标题(h1~h6，双标签，默认为块级元素)
# <p></p> 段落标签(双标签，默认为块级元素，浏览器默认添加上下外边距（margin），使段落间自动产生间距，可通过CSS重置：p { margin: 0; })
# 文本格式化标签(以下8个默认为行内元素)：
# <strong></strong> 和 <b></b> 加粗
# <em></em> 和 <i></i> 倾斜
# <ins></ins> 和 <u></u> 下划线
# <del></del> 和 <s></s> 删除线
# strong、em、ins、del标签自带强调含义(语义)
# <div></div> 块级标签(独占一行)(块级元素宽度默认为父级的100%，可以设置宽高和内外边距属性)
# <span></span> 行内标签(有多大占多大)(宽高和垂直方向上的内外边距属性行内元素默认无效)
# <a href="链接地址"></a> 超链接，单击文本或图像跳转到其他页面(双标签，href属性是必须属性可以是文件路径也可以是URL，默认当前页面打开，target="_blank"新页面打开) <a href="https://www.runoob.com/">访问菜鸟教程</a>
# <img src="图片地址" alt="替换文本" title="提示文本"> 显示图片(src属性是必须属性，alt是图片无法载入的时候显示的文字，title是鼠标悬停在图片上面的时候显示的文字，自闭合标签(单标签)，即不需要结束标签)(style可以用像素（px）或百分比（%）来表示，如果只设置宽度或高度中的一个属性，默认等比例缩放)(本地图片默认在static)(img默认是行内标签，但能设置宽高和内外边距，类似行内块元素)
# <audio src="音频地址" controls loop autoplay></audio> 音频标签(双标签，src属性是必须属性，controls显示音频控制面板，loop循环播放，autoplay自动播放，在HTML5里面，如果属性名和属性值相同，可以简写为一个单词)
# <video src="视频地址" controls loop muted autoplay></video> 视频标签(双标签，src属性是必须属性，controls显示视频控制面板，loop循环播放，muted静音播放，autoplay自动播放)
# 相对路径：/表示进入某个文件夹里面，文件夹名字/，.表示当前文件所在的文件夹即当前目录，所以./表示进入当前文件所在的文件夹，../表示进入上级目录(进入当前文件夹的上一级文件夹)
# 绝对路径：从盘符或根目录出发
# <br> 换行(单标签)
# <hr> 创建水平线(单标签)
# <!--注释-->
# 列表(默认为块级元素)
    # <li> HTML 元素用于表示列表中的一个项目(定义列表项)。作为子元素必须包含在父元素中，这些父元素可以是有序列表（<ol>）或 无序列表（<ul>），而定义列表（<dl>）的子元素为<dt>自定义列表项目和<dd>定义自定义列表项的描述，父元素定义了列表的类型，其中只能包含特定类型的子元素，而子元素内可以包含任何内容。
    # 移除默认样式
#       ul, ol {
#   list-style-type: none;
#   margin: 0;
#   padding: 0;
#   }
# 表格
    # <table border="1"></table> 一个完整的HTML表格由 <table> 标签开始，并以 </table> 结束。在 <table> 和 </table> 之间，可以包含 <tr>（表格行），<tr>（表格行）之间可以包含<th>（表头单元格）、<td>（表体单元格）等标签。如果不定义border边框属性，表格将不显示边框。(虽然只使用 <tr>、<th> 和 <td> 标签也可以构建表格，但添加表格结构标签 <thead>表格头部、<tbody>表格主体 和 <tfoot>表格页脚 可以提供额外的结构和语义信息)
# 合并单元格：保留最左最上的单元格，添加属性（取值是数字，表示需要合并的单元格数量）
#     跨行合并，保留最上单元格，添加属性rowspan
#     跨列合并，保留最左单元格，添加属性colspan
# HTML 表单用于收集用户的输入信息。
# HTML 表单表示文档中的一个区域，此区域包含交互控件，将用户收集到的信息发送到 Web 服务器。
# HTML 表单通常包含各种输入字段、复选框、单选按钮、下拉列表等元素。
# <form action=""></form>标签用于创建表单,action表示发送数据的地址
# <label></label>标签用于为各种表单元素添加标签，提高可访问性，增大点击范围。
# 写法1，通过 for 和 id 关联：label标签只包裹内容，不包裹表单控件，设置label标签的for属性值和表单控件的id属性值相同
# 写法2，直接包裹控件：使用label标签包裹文字和表单控件，不需要属性
# input标签(自闭合标签（单标签），默认为行内块元素)(type属性值不同，则功能不同)
# <input type="text" placeholder="提示信息" value="电脑">#创建文本输入框，用于输入单行文本，用户可以在输入框中修改value属性的值，在表单提交时，浏览器会将输入框的当前值发送到服务器即value值
# <input type="password" placeholder="提示信息">#创建密码输入框，密码字段字符不会明文显示，而是以星号 * 或圆点 . 替代
# <input type="file" multiple>#创建文件上传字段，multiple文件多选
# <input type="radio" name="gender" value="男" checked>男#创建单选框，name属性的值相同视为同一组选项，只能选择一个（选中一个后，其他同名的单选框会自动取消选中）,value="男"是这个选项的值，如果用户选择了这个选项，提交表单时这个name会与value值构成键值对被发送到服务器，checked表示默认选中
# <input type="radio" name="gender" value="女">女
# <input type="checkbox" checked>篮球#创建复选框(多选框)，checked表示默认选中，HTML中的checked属性：是一个布尔属性，存在即表示选中，JavaScript中的checked属性：是一个布尔值，true表示选中，false表示未选中
# <input type="checkbox">乒乓球
# <input type="checkbox">排球
# <input type="button" value="提交">#创建按钮
# <input type="submit" value="提交">#创建按钮(提交表单)
# <button type=""></button>双标签，创建按钮，可以包含更多内容(type属性值有submit提交按钮（点击后可以提交数据到后台，默认属性值）、reset重置按钮（点击后将表单控件恢复默认值）、button普通按钮（默认没有功能，一般配合JavaScript使用）。disabled布尔属性，如果存在，则按钮被禁用，不可点击)
# 下拉框，selected表示默认选中
    # <select></select>
# <select>#单选下拉框
#     <option>北京</option>
#     <option selected>上海</option>
#     <option>深圳</option>
# </select>
# <select multiple>#多选下拉框
#     <option>北京</option>
#     <option>上海</option>
#     <option>深圳</option>
# </select>
# 多行文本(双标签，文本域标签)
    # <textarea></textarea>
    # <textarea rows="3"></textarea> 至少3行的高度
# 划分
# 块级标签：
    # <h1></h1>
    # <div></div>
    # 列表
# 行内标签：
    # <span></span>
    # <a></a>
    # <img>
    # <imput>
# 嵌套
    # 块级行内、图片超链接表格
# 案例：用户注册
# 页面上的数据想要提交到后台：
# 1、form标签包裹要提交数据的标签
# 2、提交方式：如属性method="get"(定义表单数据应该如何发送到服务器。常用的值有 GET 和 POST。GET 方法会将表单数据附加到 URL 上即“?”后面的部分，适用于检索数据，但不适合传输敏感信息。POST 方法会将表单数据作为 HTTP 请求的主体发送，适用于提交更多的数据，尤其是敏感数据，因为数据对用户来说是不可见的。)
# 3、提交的地址：如属性action="/xxx/xxx/xx"(指定当表单提交时，数据应该发送到的 URL。如果未指定，数据将发送到当前页面的 URL。)
# 4、在form标签里面必须有一个submit标签，如<input type="submit" value="submit按钮">
# 5、在form里面的一些标签一定要写name属性，如<input type="text" name="user"/>
# 字符实体：如果希望正确地显示预留字符，HTML 中的预留字符就必须被替换为字符实体。
# 空格：  实体名称：&nbsp;
# 小于号：< 实体名称：&lT;
# 大于号：> 实体名称：&gt;